#ifndef texture_h
#define texture_h

#include <string>
#include <vector>
#include "ReferenceCounted.h"

namespace hxe 
{
    class Texture : public ReferenceCounted
    {
    public:
        Texture(std::string path, std::string type);
        Texture(std::vector<std::string> faces);
        ~Texture();

        unsigned int getId() const;
        std::string getType() const;
        int getBindType() const;

    private:
        bool loadImage(std::string path, unsigned char** imageData);
        void freeImage(unsigned char* imageData);

    private:
        unsigned int textureId;
        int bindType;

        std::string type;
        int width;
        int height;
        int channel;
        int format;
    };
}

#endif // texture_h
